Interactive video viewing

ABSTRACT

A method and apparatus for providing an interactive video viewing experience for a user. The user has an internet enabled device and launches an interactive watching application (IWA) on his device. Using the IWA, he brings up a list of available video content and selects a video for viewing. As the user is viewing the video, an overlay display appears on the lower portion of the screen and overlays a portion of the still running video. The overlay displays “Touch for information regarding this program.” When the user touches the display, the video pauses and a web page containing information regarding or relating to the program or its subject matter is displayed. Utilizing various similar overlays, an interactive video viewing experience is provided to the user. The experience can include various overlays and associated experiences, such as obtaining information regarding new characters or consumer products as they appear.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/329,877, entitled “INTERACTIVE VIDEO VIEWING”, filed Jul. 11, 2014,which claims the benefit of U.S. Provisional Patent Application No.61/856,601, entitled “Modular Platform for Augmenting Video Content”,which was filed on Jul. 19, 2013, which is incorporated by referenceherein in their entirety.

BACKGROUND

Users watch video on various types of internet enabled devices, such astablets, smartphones, laptops, etc. Users may access various types ofvideo via the internet and watch the videos as they are streamed overthe internet to the users' internet enabled devices. For example, a usermay use his internet enabled device to locate a television (TV) programor movie that is available via video on demand (VOD), and to initiate astream of the TV program or movie to his internet enabled device forviewing. As another example, the user may use his internet enableddevice to locate an online feed of a channel of interest, such as one ofthe major networks (e.g., NBC, ABC, CBS, FOX, etc.), and join in viewinga feed that is broadcast 24×7 (i.e., 24 hours a day, 7 days a week).

SUMMARY

This description introduces a technique for providing an interactivevideo viewing experience for a user. In an embodiment, a user has aninternet enabled device, such as a tablet computer or a smartphone, andlaunches an interactive watching application (IWA) on his internetenabled device. Using the IWA, he brings up a list of available videocontent, and he selects a video to view. As the user is viewing thevideo, an overlay display appears on the lower portion of the screen andoverlays a portion of the still running video. The overlay displaydisplays “Touch for information regarding this program.” When the usertouches the display of his internet enabled device, the video pauses anda web view appears of a web page containing information about theprogram. The user navigates around the web data, and decides that hewants to watch the video. He exits the web view, and the video resumes.

At a point in the video where a new show character or cast memberappears, another overlay appears. The overlay displays informationregarding this new character or cast member, and slowly fades after afew seconds. An advertiser has arranged for a product placement toappear in the video for a new soda called “Tasty.” At a point in thevideo where the product placement occurs (i.e., where Tasty appears),another overlay appears. The overlay displays “Touch to obtain a couponfor Tasty, a fantastic new soda.” The user touches the display, and acoupon for a free can of Tasty is emailed to his email account, textedto his smartphone, or added to a digital wallet.

At a point in the video where a commercial for a new show appears,another overlay appears. The overlay displays “Touch to record this newshow.” The user touches the display, and the IWA causes the user's DVRto schedule to record the new show. Near the end of the show, an overlayappears and displays “Touch to share your thoughts about this show withyour friends.” When the user touches the display, the video pauses and asocial media view is loaded. The social media view enables the user toshare information about the show or any other topic via one or more ofhis social media accounts.

At the end of the video, the user realizes that his viewing experiencewas enhanced by the interactive video viewing environment that he justexperienced. Using this environment, he was able to obtain informationabout the program of the video to determine if he was interested inwatching the program. As new characters or cast members appeared,information about these new characters or cast members appeared as anoverlay on the screen, and he was able to keep track of the charactersand/or cast members and understand the show better. As a new productappeared on the screen, he was able to obtain a coupon for the product.Finally, as the show ended, he was able to easily share his thoughtsabout the program with his friends via a social media application thatautomatically appeared.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of a technique will be described and explained through theuse of the accompanying drawings in which:

FIG. 1 is a system diagram illustrating an environment where a user canexperience interactive video viewing, consistent with variousembodiments;

FIG. 2 is a component diagram illustrating an interactive watchingenvironment that enables interactive video viewing, consistent withvarious embodiments;

FIG. 3 is a diagram illustrating a traffic control component of theinteractive watching environment, consistent with various embodiments;

FIG. 4 is a diagram illustrating feeds of video and other data availableto the interactive watching environment, consistent with variousembodiments;

FIG. 5 is a diagram illustrating an extract, transform, and load (ETL)module associated with the interactive watching environment, consistentwith various embodiments;

FIG. 6 is a diagram illustrating a server environment associated withthe interactive watching environment, consistent with variousembodiments;

FIG. 7 is a diagram illustrating application platforms that can interactwith the interactive watching environment, consistent with variousembodiments;

FIG. 8 is a diagram illustrating client and partner environments thatcan interact with the interactive watching environment, consistent withvarious embodiments;

FIG. 9 is an activity diagram illustrating a process for providing aninteractive video viewing experience to a user, consistent with variousembodiments;

FIG. 10 is a diagram illustrating a “link to website” use case,consistent with various embodiments;

FIG. 11 is a diagram illustrating a social media use case, consistentwith various embodiments;

FIG. 12 is a diagram illustrating a cast/character information meta-datause case, consistent with various embodiments;

FIG. 13 is a diagram illustrating a photos and videos use case,consistent with various embodiments;

FIG. 14 is a diagram illustrating a content, quizzes, and pollsmeta-data use case, consistent with various embodiments;

FIG. 15 is a diagram illustrating a set digital video recorder (DVR) usecase, consistent with various embodiments;

FIG. 16 is a diagram illustrating a product placement use case,consistent with various embodiments;

FIG. 17 is a diagram illustrating a sync'd to ad use case, consistentwith various embodiments;

FIG. 18 is a diagram illustrating a add to watchlist use case,consistent with various embodiments;

FIG. 19 is a diagram illustrating a add reminder use case, consistentwith various embodiments;

FIG. 20 is a diagram illustrating a cross promotion of shows use case,consistent with various embodiments;

FIG. 21 is a diagram illustrating a cross promotion of networks usecase, consistent with various embodiments;

FIG. 22 is a diagram illustrating a cross promotion of applications usecase, consistent with various embodiments;

FIG. 23 is a diagram illustrating a request for information (RFI)/emailcapture use case, consistent with various embodiments;

FIG. 24 is a diagram illustrating a coupon use case, consistent withvarious embodiments;

FIG. 25 is a diagram illustrating a movie, concert, sporting event, etc.ticket purchase use case, consistent with various embodiments;

FIG. 26 is a diagram illustrating a flight, hotel, etc. booking usecase, consistent with various embodiments;

FIG. 27 is a diagram illustrating a credit card, loan, etc. applicationuse case, consistent with various embodiments;

FIG. 28 is a diagram illustrating a accruing points for aloyalty/rewards program use case, consistent with various embodiments;

FIG. 29 is a diagram illustrating a digital goods purchase use case,consistent with various embodiments;

FIG. 30 is a diagram illustrating a physical goods purchase use case,consistent with various embodiments; and

FIG. 31 is a high-level block diagram showing an example of processingsystem in which at least some operations described in the descriptionsof the above figures can be implemented.

DETAILED DESCRIPTION

This description introduces a technique for providing an interactivevideo viewing experience for a user. In this description, the term“cause” and variations thereof refer to either direct causation orindirect causation. For example, a computer system can “cause” an actionby sending a message to a second computer system that commands,requests, or prompts the second computer system to perform the action.Any number of intermediary devices may examine and/or relay the messageduring this process. In this regard, a device can “cause” an action eventhough it may not be known to the device whether the action willultimately be executed.

In this description, references to “an embodiment,” “one embodiment,”“an implementation,” or the like, mean that the particular feature,function, structure or characteristic being described is included in atleast one embodiment of the technique introduced here. Occurrences ofsuch phrases in this specification do not necessarily all refer to thesame embodiment. On the other hand, the embodiments referred to are alsonot necessarily mutually exclusive.

FIG. 1 is a system diagram illustrating an environment where a user canexperience interactive video viewing, consistent with variousembodiments. In the embodiment of FIG. 1, environment 100 includes user110's media center 105 and internet enabled device 115, interactivewatching environment (IWE) 120, and third party platform 125. Mediacenter 105 can include streaming devices, video game consoles, set topboxes, digital video recorders (DVRs), TVs, internet enabled blu-raydisc players, etc. Internet enabled device 115 can be a tablet computer,a smartphone, a laptop computer, etc., and can have a touch sensitivescreen. The internet enabled devices that are part of environment 100can communicate via a network, which can include local area networks,wide area networks, wireless networks, the internet, etc.

In some embodiments, a video content provider, such as a networkbroadcast station (e.g., NBC, ABC, etc.), or a video on demand provider(e.g., Comcast™, Netflix™, etc.), among others, uses IWE 120 to create atrigger for additional content to appear on a user's internet enableddevice, such as user 110's internet enabled device 115, while streamingan associated video. A trigger can cause additional content to bedisplayed based on various events or data related to the video, and theadditional content can be overlaid over the display of the streamingvideo (as is shown with the “overlay display” of internet enabled device115).

For example, IWE 120 can serve a data feed that includes triggers. Insome embodiments, the triggers can specify the begin and end time codesto display content, e.g., via an overlay display, that is related to thevideo or the video's contents. For example, display a specific overlaydisplay or display element (also referred to as a display template) at12:52 into playback, in which case the data fields of the trigger in thefeed can be start time, stop time, and a pointer to the overlay displayor display element to use.

Each trigger in the feed can have an associated content type, e.g.,display a fact, display a photo, display a quiz, etc. The data relevantto the content type can be included in the data feed, can be interpretedby an application, e.g., interactive watching application (IWA) 130,that runs on internet enabled device 115. IWA 130 can build the relatedoverlay display, for example, based on a display element and the data ofthe trigger. As the video playback progresses, IWA 130 can monitor thefeed for a begin time code signaling a time to display related content,and can react to the time arriving at the begin time code by displayingthe related content, e.g., via an overlay display, until the time whenthe end time code arrives.

For related content that is interactive, playback of the video can bepaused upon a touch interaction with the overlay display (e.g.,displaying a quiz). A trigger can also be a derived value, such asdisplay a specific overlay display four times during a video. A triggercan further be based on an elapsed time, such as display a specificoverlay display every ten minutes during the video. The trigger datafields for an elapsed time trigger can be the elapsed timer and apointer to the specific overlay display or display element to use.

In some embodiments, the video content provider can create a triggerthat displays additional content at a pre-defined point in the video(e.g., at the 5:25 point of the video), when the next or a specificcommercial begins (e.g., at the next commercial break or when a CocaCola™ commercial begins), when a specific TV show begins, when aspecific character from a TV show or movie appears in the video, etc. Inaddition to, or alternately to, being sent to internet enabled device115 via an IWE 120 data feed, a trigger can be stored in or added tovarious places related to the video, such as in the video content asmeta-data, in a database associated with IWE 120, etc. When added to thedatabase, the trigger can also be linked with the video via thedatabase.

To use internet enabled device 115 to interactively view videos, user110 downloads and installs IWA 130 on internet enabled device 115. User115 can then use IWA 130 to determine available video data, such as bysearching for videos or browsing a catalog of available videos. User 110locates a video of interest and uses IWA 130 to initiate the streamingof the video to internet enabled device 110. Prior to the streaming ofthe video, the video content provider inserted a trigger to causeadditional content to be displayed at the 5:25 point in the video. Anadvertiser arranged for a product placement to occur at the 5:25 pointof the video; specifically, Coca Cola arranged for a new Coca Colaproduct to be used by a TV show character at the 5:25 point. Theadvertiser further desires to enable user 110 to easily access a websitewith additional product information.

As IWA 130 is displaying the streamed video, IWA 130 receives thetrigger, e.g., as meta-data sent with the streamed video, from thedatabase associated with IWE 120, etc. At the 5:25 point, IWA 130, basedon the data of or associated with the trigger, selects a display elementand overlays the display element over the streaming video. User 110notices the display element, which appears in the lower part of thescreen of internet enabled device 115 and displays “Touch here forinformation on Coca Cola's new product.” As the display element catchesthe attention of user 110, he notices the new Coca Cola product in theTV show. Having some interest in the product, user 110 touches thedisplay element as it is being displayed on the touch-sensitive displayof internet enabled device 115, which pauses the video and displayswebsite data associated with a uniform resource locator (URL) oninternet enabled device 115.

The URL can be associated with the trigger. For example, when thetrigger is added as meta-data to the video content, the URL can also beadded to the video content as meta-data, or when the trigger is added tothe database associated with IWE 120, the URL can also be added to thedatabase, etc. User 115 navigates around the website exploring the newproduct. Once he is done exploring the website, he exits the website andassociated display element, and the video restarts from the same point.

In some embodiments, the URL is provided by third party platform 125.When the video content provider inserts the trigger, rather thanassociating data that identifies the URL of the website to display withthe trigger, contact information for third party platform 125, such as aURL or an Internet Protocol (IP) address associated with third partyplatform 125, can be associated with the trigger. When IWA 130 receivesthe trigger data, IWA 130 communicates with third party platform 125based on the contact information, and obtains the URL for the website todisplay from third party platform 125.

When the video reaches the 5:25 trigger point, IWA 130, based on thedata of or associated with the trigger, selects a display element andoverlays the display element over the streaming video. User 110 noticesthe display element, which appears in the lower part of the screen ofinternet enabled device 115 and displays “Touch here for information onCoca Cola's new product.” When user 110 touches the display element asit is displayed on internet enabled device 115, the video is paused andthe website data associated with the URL obtained from third partyplatform 125 is displayed on internet enabled device 115. Once user 115is done exploring the website, he exits the website and associateddisplay element, and the video restarts from the same point.

The IWA can be installed on various devices, and even multiple devices.For example, an instance of the IWA can be installed at a device ofmedia center 105, such as the streaming device, and/or can be installedat mobile device 135. In some embodiments, IWE 120 and/or IWA 130, aswell as other components, can interact with mobile device 135. Forexample, the user's actions on a device of media center 105 caninstigate an action on mobile device 135, or the user's actions onmobile device 135 can instigate an action on a device of media center105. For example, the user can use internet enabled device 115 toinitiate display of a video on the TV of media center 105. Theinitiation of the display of the video can prompt information regardingthe video to be displayed on mobile device 135. As a second example, theuser can use internet enabled device 115 to initiate display of a videoon mobile device 135. The initiation of the display of the video canprompt information regarding the video to be displayed on internetenabled device 115, or on the TV of media center 105 via the streamingdevice.

FIG. 2 is a component diagram illustrating a platform that enablesinteractive video viewing, consistent with various embodiments.Interactive watching environment (IWE) 200 includes traffic control 205,feeds 210, extract, transform, and load (ETL) 215, server environment220, application platforms 225, and clients and partners 230. Each ofthese components will be discussed is further detail in the followingfigures, and will be discussed only briefly here. The communication flowindicated in the embodiment of this figure is not a representation ofthe communication between the components for all embodiments. Forexample, in some embodiments, feeds 210 can bi-directionally communicatewith server environment 220, and can bi-directionally communicate withan internet enabled device of application platforms 225. As a secondexample, in other embodiments, feeds 210 has a one-way communicationwith ETL 215. In various embodiments IWE 200 can be the same as IWE 120of FIG. 1, can include IWE 120 and third party platform 125, or can bedifferent.

In the embodiment of FIG. 2, traffic control 205 is a component orplatform for scheduling and managing video content that gets deliveredto an IWA that runs on an internet enabled device of applicationplatforms 225. For example, a video content provider uses trafficcontrol 205 to create triggers for additional content to appear on auser's internet enabled device. Feeds 210 is a source of multiple datafeeds, such as video on demand, a streaming of a real time feed of NBC(e.g., a stream that is similar to the video that is being broadcast byNBC over the public airwaves), a feed of meta-data associated with avideo feed, etc. ETL 215 is a module that blends all the feeds fromfeeds 210 together so they relate and so that IWA 130 can deliver aninteractive user experience.

For example, one feed can be a real time stream of NBC, a second feedcan be program schedule data for NBC, and a third feed can be contentinformation regarding NBC programs. ETL 215 can relate the real time NBCstream with the program schedule data, can relate the real time NBCstream with the content information, and can relate the program scheduledata with the content information. These cross-relations or “blending”between the data of the various feeds can be stored in a database ofserver environment 220. Server environment 220 can include one or moreprocessing devices of FIG. 31, such as processing device 3100.Applications platforms 225 are the various internet enabled devices,such as internet enabled device 115, that can run an IWA application.These various internet enabled devices are the devices which a user,such as user 110, can use to experience interactive video viewing.Clients and partners 230 are platforms of various business entities thathave a special business relationship with the entity that provides IWE200. These business entities may have enhanced access to variouscomponents of IWE 200, such as via an application programming interface(API) to one or more components of IWE 200, or may provide specialcontent or data to IWE 200, such as video or data for or to enhancetargeted advertising.

FIG. 3 is a diagram illustrating a traffic control component of theinteractive watching environment, consistent with various embodiments.Traffic control 300, which can be the same as traffic control 205, is acomponent or platform for scheduling and managing video content thatgets delivered to an IWA that runs on an internet enabled device ofapplication platforms 225. For example, a video content provider usestraffic control 300 to create triggers for additional content to appearas an overlay over video being streamed to a user's internet enableddevice. In the embodiment of FIG. 3, traffic control 300 includeseditorial 305, tune-in 310, advertising 315, and platform 320.

In some embodiments, traffic control 300 is an application running on aserver. An employee of a content provider loads a video onto the serverand opens the video utilizing traffic control 300. The employeeidentifies various events in or meta-data associated with the video anduses traffic control 300 to enter a trigger. The capabilities of trafficcontrol 300 are organized into several groups. Editorial 305 containsfunctions that enable the employee to insert triggers related to showpriority, screen layout, and social media. Tune-in 310 containsfunctions that enable the employee to insert triggers related to alerts,“Live” flags, and cross-promotions (x-promos). Advertising 315 containsfunctions that enable the employee to insert triggers related to sponsorflights, ad net routing, lower thirds, or commerce. Platform 320contains functions that enable the employee to insert triggers relatedto feed management, device management, and reporting.

The functions of editorial 305 can be used to insert a trigger that, forexample, triggers the display of an element as an overlay over a portionof a streaming video that is being displayed by an internet enableddevice, such as internet enabled device 115. For example, the employeecreates a trigger that triggers at a defined point in the program, suchas at the 25:30 point, which in this example is when the program creditsare displayed. When a user watches the program on his internet enableddevice, the trigger at the 25:30 point of the program triggers a socialmedia element to be displayed as an overlay over the program as it isstreamed to the user's internet enabled device and displayed. The socialmedia element displays a message stating “Share this program onFacebook™.” If the user touches the screen where indicated, IWE 200causes a message to be posted on Facebook under the user's account tonotify the user's Facebook friends that the user is watching thatprogram.

The trigger can be stored in or added to various places related to thevideo. For example, the trigger can be added to the video content asmeta-data. As another example, the employee uses traffic control 205 thetrigger can be added to a database associated with IWE 200, such as in adatabase of server environment 220, and the trigger can be associatedwith a particular video, such as by being linked to the video in thedatabase.

The functions of tune-in 310 can similarly be used to insert a trigger.In addition to being able to support video on demand, IWE 200 cansupport live video. For example, a major network will be, at 2:00 pmtomorrow and through the feed for their network, streaming a baseballgame live (i.e., in real time as the game is being played). The employeecreates a trigger that triggers the display of a “live” flag element at2:00 pm the following day.

In this situation the employee cannot add the trigger to the videocontent, as the video does not exist and will not exist prior to beingstreamed live. Here, the trigger is added to a database associated withIWE 200. If a user is watching the real time stream of the network usingan internet enabled device, the internet enabled device, bycommunicating with IWE 200, will receive the trigger which is read fromthe database and sent to the internet enabled device by a component ofIWE 200. Upon receiving the trigger from IWE 200 and the clock arrivingat 2:00 pm, the internet enabled device displays an overlay of the“live” flag element to notify the user that the game is being streamedlive.

In another example, the employee uses the functions of tune-in 320 tocreate a cross-promotional trigger. The employee creates a trigger tonotify the user about a program that is related to the current program.For example, a news show may be covering the topic of homelessness, andthe employee desires to cross-promote a news show on poverty with theshow on homelessness, or a political series that has a recurring themeof homelessness. The employee creates a trigger that will trigger thedisplay of a cross-promotional element at a pre-defined point in theprogram, and that will notify the user, as he is watching the program onhomelessness, about an upcoming program on or series related to poverty.The user can touch the display where indicated by the cross-promotionalelement, which will cause the IWA to take an action.

For example, the IWA can cause a message to be sent to the user's DVRthat causes the DVR to schedule to record the program on poverty or eachepisode of the political series, or the IWA can add the show on povertyor the political series or each episode of the political series to theuser's watchlist (i.e., a list of programs that the user desires towatch), or the IWA can load and display website data associated with aURL that is associated with the trigger, or the IWA can cause a triggerthat triggers a reminder message to be displayed at the time that theprogram on poverty or an episode of the political series is scheduled tobe streamed, among others.

The functions of advertising 315 can be used similarly to insert atrigger. For example, the employee creates a trigger for a sponsorflight or an ad net routing that triggers at a defined point in theprogram, or at a time when the sponsor is contextually relevant, such aswhen an arranged product placement for the sponsor occurs, or when acertain song is playing in the program. When a user watches the programon his internet enabled device, the trigger at the trigger point promptsa sponsor flight or ad net routing element to be displayed as an overlayover the program as it is streamed to the user's internet enabled deviceand displayed. The sponsor flight element displays a message stating,for example, “Sponsored by BMW™.” The ad net routing element displays acommercial of the sponsor to be displayed.

If the user touches the screen, IWE 200 can cause information related tothe sponsor to be displayed, such as a website containing informationregarding the sponsor's products, other commercials regarding a productof the sponsor, etc. Touching the screen can also initiate a purchase.For example, when the certain song is playing, an overlay display canappear stating “Touch here to purchase this song,” and when the usertouches the screen, a purchase of the song from an online purchaselocation is initiated, or even completed via a single-touch purchasemechanism.

The overlay display can also display contextually relevant, personalizedinformation. For example, the interactive watching environment can beaware of and communicate with connected devices of the user, such as acar. When the user has a connected BMW, and the user has providedinformation that enables the interactive watching environment tocommunicate with the user's BMW, the interactive watching environmentcan obtain information regarding the BMW. This can enable the display ofcontextually relevant, personalized information.

For example, when a BMW commercial displays during playback of a video,the interactive watching environment can communicate with the user'sBMW, determine that the BMW needs some maintenance, and can display anoverlay display containing the information regarding the neededmaintenance (e.g., the overlay display can display “Your BMW is 200miles over the recommended oil change interval. Would you like toschedule an appointment?” When the user touches the overlay display, amodule to schedule an oil change is brought up, enabling the user toschedule a service appointment.

The functions of platform 320 can similarly be used to insert a trigger.For example, the employee creates a trigger that, upon being triggered,checks various feeds for programming or information that may be ofinterest to the user. Based on the user's profile, which indicatespreferences of the user, the trigger can checks the various feeds forprogramming or information that is related to the indicated preferencesof the user.

FIG. 4 is a diagram illustrating feeds of video and other data availableto the interactive watching environment, consistent with variousembodiments. Feeds 400, which can be the same as feeds 210, includescontent 405, meta-data 410, ad 415, social 420, schedule 425, and userdata 430. In the embodiment of FIG. 4, a feed is a source of data thatcan be accessed by an internet enabled device. The feed can be accessed,for example, via a URL, an IP address, etc. Further, the feed can beaccessed by any internet enabled device that has permission to accessthe feed, such as the internet connected devices of applicationplatforms 225, a computer of server environment 220, an internet enableddevice of media center 105, etc.

Content 405 is a feed that provides video content. For example, the realtime stream of a major network is a video content feed. As anotherexample, a server that provides video on demand is another video contentfeed. Meta-data 410 is a feed that provides meta-data associated withthe video content of content 405. For example, meta-data 410 can be thetitle of a program, the description of the program, characters of theshow, etc. Ad 415 is a feed that provides ads that can be displayed tothe user via one of the elements that is accessed by a trigger. Forexample, ad 415 can be a commercial regarding a product, service,vacation destination, charity, political candidate, etc., can beinformation regarding a product, service, etc. Social 420 is a feed thatprovides various types of information related to various social mediaand/or networks. For example, social 420 can provide posts, messages,friend information, profile information, configuration information, etc.associated with various social media and/or networks. This informationmay be protected, and may require certain permissions to be able toaccess.

Schedule 425 is a feed that provides schedule data related toprogramming of a real time stream, such as the real time stream of amajor network. For example, the schedule for NBC may identify a certainprogram as starting at 4:00 pm on a given date, another program asstarting at 4:30 pm on that date, etc. User data 430 is a feed that canprovide data regarding a user, such as the user's profile data, theuser's payment card information (a credit card, a debit or automatedteller machine card, a gift card, etc.), the user's address, the user'svideo viewing history and indicated preferences, the user's purchasinghistory, etc. This information may also be protected, and may requirecertain permissions to be able to access.

FIG. 5 is a diagram illustrating an extract, transform, and load (ETL)module associated with the interactive watching environment, consistentwith various embodiments. ETL 500, which can be the same as ETL 215,includes modules ingest 505, blend 510, normalize 515, and validate 520.In the embodiment of FIG. 5, ETL 500 obtains data from the various feedsof feeds 400 of FIG. 4, and relates all the information in order tocreate a compelling and interactive video watching experience for theuser. While ingest 505 executes, data from the various feeds is receivedby ETL 500 and information relevant is extracted from the feed data inpreparation for blending and normalization. For example, after receivingdata from the various feeds and in preparation for blending andnormalizing the data to create a compelling video watching experience ofa particular video for the user, ingest 405 obtains and/or extracts datafrom the various feeds to locate the data relevant to the desired videowatching experience.

Ingest 505 obtains a video from content 405, determines the title of thevideo based on data from metadata 410, obtains information from ad 415regarding an ad that is to be displayed based on a trigger associatedwith the video, and obtains user data regarding the user's video viewingpreferences from user data 430. The trigger can have been associatedwith the video by the video content provider utilizing traffic control300. Ingest 505 can accomplish this in various ways, such as by parsingthe data from the feed to determine the feed data that is related to thevideo, by sending a message to a feed requesting data that is related tothe video, etc. For example, for a feed that continuously broadcastsdata, ingest 505 can continuously parse the broadcast data, determinethe data of interest, such as determining all the data from the variousfeeds that are related to all the programs that are on the user'swatchlist, and can store that data, such as in a database. As anotherexample, for a feed that responds to requests, as a video is beingprocessed by ingest 505, ingest 505 can send a message to the feedrequesting data related to the video, such as the title, storyline,characters, etc. of the video.

Blend 510 blends relevant data from the various feeds together to createa compelling video watching experience for the user. For example, thevideo is associated, such as via a link in a database, with the programtitle, storyline, and characters of the video by ingest 505. The videois further associated by ingest 510 with an ad from ad 415 that is to bedisplayed by the trigger associated with the video. Based on the userdata from user data 430 regarding the user's video viewing preferences,schedule data from meta-data 410 is searched for programs that may be ofinterest to the user and the video is further associated with thoseprograms of interest. For example, based on user data where the userindicates a preference for reality TV programs, blend 510 finds anavailable or upcoming episode of a reality TV program and associates theprogram with the video. As a second example, based on user data thatindicates a history of the user watching a particular reality TVprogram, blend 510 finds an available or upcoming episode of theparticular reality TV program and associates the program with the video.

Blend 510 can also associate triggers with the video. While some of thedata that blend 510 identified can be associated with triggersassociated with the video via traffic control 300, blend 510 can itselfassociate triggers with the video in order to create the desired videowatching experience. Blend 510, based on schedule data from schedule425, can create a trigger that triggers at any time point identified bythe schedule data. In various embodiments, time points identified by theschedule data from schedule 425 include when the program starts andends, when commercial breaks start and end, when a particular programcharacter enters or leaves a scene of the program, when a productplacement in the program begins or ends, etc.

Blend 510, based on scanning the video to identify certain events, cancreate a trigger that triggers at any of these events. In variousembodiments, events that are identified by blend 510 can includeidentifying when the program starts and ends, identifying whencommercial breaks start and end, identifying when a particular programcharacter enters or leaves a scene of the program, identifying when aparticular product appears in a scene, etc.

To create a compelling video watching experience for the user, blend 510can associate plan to display a sequence of information that is intendedto enhance the user's video viewing experience. For example, blend 510can associate a first trigger with the video that triggers at thebeginning of the TV program or movie of the video, and that causes thean IWA on the user's internet enabled device that he uses to watch thevideo to display a element that overlays part of the video and thatdisplays “Touch here for information regarding this program.” Ingest 505obtained a URL of a website containing information regarding the programfrom meta-data 410, and blend 510 associated this website with the firsttrigger.

Blend 510 can associate a second trigger with the video that triggers atwhen a product placement occurs, and that causes the an IWA on theuser's internet enabled device that he uses to watch the video todisplay a element that overlays part of the video and that displays“Touch here for information regarding product ABC,” where ABC is thename of the product. Blend 510 can associate an ad from ad 415 with athird trigger that was previously associated with the video usingtraffic control 300. Blend 510 associates an ad for product ABC, theproduct that has a product placement in the video, with the thirdtrigger.

Normalize 515 is where video content from the various feeds areinter-related and associated with the video. For example, normalize 515prepares a video containing a program for viewing by the user where theprogram is from a news feed that streams news-related video content 24hours a day 7 days a week. In preparing the video for viewing, normalize515 scans the content of videos available from the various feeds to findshows that are related, and that the user may find interesting. Inpreparing a video of a cooking show with a celebrity chef for viewing,normalize 515 scans other feeds and finds two other cooking showsfeaturing this celebrity chef and associates these shows with the video.Normalize 515 further creates a trigger that triggers when the celebritychef first enters a scene of the program, and that causes aninformational element to be displayed upon being triggered. Theinformational element displays information regarding these two othercooking shows, and offers to place these shows in the user's watchlist,or to schedule the two other cooking shows for recording by the user'sDVR.

Validate 520 is where the associations and/or triggers created by ingest505, blend 510, and normalize 515 are validated. The validation cancheck for various potential issues, such as ensuring that the triggersthat were created have correct syntax, that the web data addressed bythe URL are available, that the feed data linked to by the trigger areavailable, etc.

FIG. 6 is a diagram illustrating a server environment associated withthe interactive watching environment, consistent with variousembodiments. Server environment 600, which can be the same as serverenvironment 220, is where the video content data, some or all of thetriggers, some or all of the various associations created by the variousmodules of ETL 500, etc. is staged for production. Server environment600 can include one or more processing devices of FIG. 31, such asprocessing device 3100. During production, the data stored at serverenvironment 600 is streamed or sent to the user's internet enableddevice for viewing. In the embodiment of FIG. 6, server environment 600includes API services 605, app server 610, lower thirds 615, contentmeta-data 620, ad config. 625, concurrent data 630, event schedules 635,user profiles 640, device profiles 645, third party services 650,reporting 655, compute 660, storage 665, and database 670. Compute 660and storage 665 are hardware components of the embodiment of serverenvironment 600 of FIG. 6, while labels 605-655 and 670 representapplications that run on the hardware components of server environment600. Compute 660, storage 665, and database 670 can be provided asservices from a third party.

In the embodiment of FIG. 6, APR services 605 is an API that can beutilized by applications, such as applications developed by thirdparties, to access, process, manipulate, etc. the data stored at serverenvironment 600. App server 610 is an application server, which issoftware that supports execution of procedures (programs, routines,scripts, etc.) for applications that run on the hardware components ofserver environment 600. Overlay display 615 is a module associated withproviding elements and other data needed by the IWA running on theuser's internet enabled device to display the overlays. For example,overlay display 615 has access to a library of elements for variouspurposes, such as a social media element for a social media relatedoverlay, a “live” flag element for an overlay to indicate a “live”event, etc., and these elements can be sent to the IWA running on theuser's internet enabled device as they are requested, such as duringprocessing of the triggers.

Content meta-data 620 is a module that keeps track of the meta-data frommeta-data 410, and that sends this meta-data to the IWA running on theuser's internet enabled device as they are requested, such as duringprocessing of the triggers. Ad config. 625 has access to ads from ad415, as well as from other places such as clients and partners 800 ofFIG. 8. ad config. 625 can send these ads to the IWA running on theuser's internet enabled device as they are requested during processingof the triggers, such as during processing of the triggers. Concurrentdata 630 stores and organizes data in a way optimized for access bymultiple computing threads/processes on a computer. Event schedules 635has access to and/or manages some or all of the triggers that arecreated by traffic control 300 or ETL 400.

User profiles 640 has access to and/or manages user profiles of theuser(s) of server environment 600. User profiles 640 can access userdata from user data 430, as well as user data from user data 430 afterbeing processed by ETL 500, such as by accessing storage 665 viadatabase 670 to obtain the user data. The user profile data of userprofiles 640 can include user data such as the name, address, phonenumber, etc. of the user, payment card information of payment cards ofthe user (to support online purchases made via the IWA running on theuser's internet enabled device), etc. Device profiles 645 has access toand/or manages information regarding various devices associated with theuser, such as the devices of media center 105 or of applicationplatforms 700 of FIG. 7. Utilizing the data of device profiles 645, auser could, for example, touch an overlay display that informs the userof a program that may be of interest, and cause the program to bescheduled for recording on the user's DVR. The information needed tocommunicate with the user's DVR is obtained from device profiles 645.

Third party services 650 has access to and/or manages data provided orassociated with third party services, such as third party platform 125or clients and partners 800. In other embodiments, server environment600 can be organized differently and can include application softwareand modules of different functionality.

FIG. 7 is a diagram illustrating application platforms that can interactwith the interactive watching environment, consistent with variousembodiments. Application platforms 700, which can be the same asapplication platforms 225, includes platforms that can interact with theIWE to provide the interactive watching experience, examples of whichinclude internet enabled devices that include a display, such asinternet enabled device 115.

In some embodiments, to interact with the IWE, the internet enableddevice includes an IWA. In some embodiments, the internet enabled deviceis purchased with the IWA pre-installed. In other embodiments, the userdownloads the IWA and installs the IWA on his internet enabled device.For example, the user visits an online application store and selects theIWA from a list of applications that are available for download. Theuser then initiates a download of the IWA to his internet enableddevice, where he installs the application.

Once the IWA is installed, the user can use the IWA to interact with IWE200. In one example, the user taps on the IWA icon on his internetenabled device to launch the IWA. The user then uses the IWA to bring upa list of video content available for viewing. The user selects a videofrom the list of available video content. When the video is stored atserver environment 700, IWE 200 can initiate streaming the video to theuser's internet enabled device. When the video is available from a feed,IWE 200 can provide an address from which the IWA can obtain the video.For example, IWE 200 can send the URL or IP address of a feed from feeds400, or of another source of the video, to the IWA, and the IWA caninitiate streaming of the video from the feed or the other source.

The IWA can provide various other capabilities, such as: discover andlaunch video by browsing a feature screen; view a list of showsavailable in the IWA; view a listing of all episodes of a series thatare available; track a user's viewing history to enable advancedcapabilities, such as resume watching a video where the user left off;review a schedule of previous and upcoming week's TV shows and allow ause to set a reminder for upcoming shows; provide detailed feedbackabout the IWA; manage settings for storing data, such as where to storehistory data, watchlists, reminders, etc.; review policy and termsinformation related to the IWA; watch full episodes and clips using avideo player that supports functionality such as play/pause, volumecontrol, jump back 10 seconds, scrub forward/backward; sharing the videovia social media, email, and/or hardware that enables a user to displaythe video on a remote screen (e.g., airplay/chromecast); at the start ofa video playback, an overlay display enables the user to interact withconnected devices in the room, such as dimming the lighting in the roomand change the temperature; communicate data.

As the IWA is receiving the streamed video, IWE 200 is sending otherdata associated with the video, such as the triggers associated with thevideo that were created by traffic control 300 and/or ETL 500. The IWAreceives a first trigger, which is set to trigger at the 5:25 point ofthe video. Once the 5:25 point of the video is reached, the IWA overlaysa display element over a portion of the video to create an overlaydisplay. The display element displays “Touch here for information aboutthis program.” When the user touches the display, the IWA pauses thevideo and loads web data from a URL that is associated with the trigger.The user is able to navigate around the web data and explores theprogram. When he is done, he exits viewing the web data and the videoresumes playing. As the video continues playing, the IWA via thetriggers that are associated with the video provides an interactiveviewing experience for the user.

FIG. 8 is a diagram illustrating client and partner environments thatcan interact with the interactive watching environment, consistent withvarious embodiments. Clients and partners 800, which can be the same asclients and partners 230, represent the platforms of various businessentities that have a special business relationship with the entity thatprovides IWE 200. These business entities may have enhanced access tovarious components of IWE 200, such as via an API (e.g., API services605), to one or more components of IWE 200, or may provide specialcontent or data to IWE 200.

FIG. 9 is an activity diagram illustrating a process for providing aninteractive video viewing experience to a user. consistent with variousembodiments. In the example of illustration 900, a user, such as user110, desires to watch an episode of a TV show utilizing the interactiveviewing environment, and wishes to view the episode from a video ondemand (VOD) provider. The user has an instance of an IWA installed onone of his applications platforms 225, in this example, a tabletcomputer. The user launches the IWA, and interacts with the touchdisplay of the tablet computer to indicate that he wants a listing ofavailable content to be displayed on the tablet computer (step 934). Henavigates through the listing to find the TV show that he desires towatch, and he selects the TV show by touching it. He touches a playbutton that is displayed to indicate for the tablet computer to play theTV show (step 936). The tablet computer sends a request for the TV showto a server of server environment 220 (step 938). The request can be amessage containing a URL or IP address of where the TV show isavailable.

Prior to being made available to users, a content provider prepared theTV show for an interactive viewing experience. An employee of thecontent provider loaded the TV show on a computer that had trafficcontrol (TC) 205 installed. The employee used TC 205 to view the TVshow, and to generate triggers and other TC data for the TV show (step918). After the TV show was properly prepared to provide the desiredinteractive viewing experience, the TV show was released for productionto server environment 220, and the triggers and the other TC data weresent to the server of server environment 220. In some embodiments, theTV show is also sent to the server. The server associates the triggerand the other TC data with the TV show using a database (step 922).

The server sends the trigger and/or the other TC data to a server withETL 215 installed, where the data is received (step 910). ETL 215obtains content-related data for the TV show from a feed of feeds 210(step 906). For example, ETL 215 can obtain a description of the show, alisting of the commercials of the show, a listing of product placementsof the show, etc. ETL 215 also obtains other content-related data fordata associated with other content associated with the TV show (step908). For example, ETL 215 can obtain the video of the commercial to bedisplayed during a certain commercial break that is in the listing ofcommercials, or can obtain product information or URL addresses ofproduct related websites to be made available via an overlay displayduring a product placement.

ETL 215 cross-associates the TV show with the data received during steps906-910. The associated videos, URLs, information, quizzes, etc. arewoven together and cross-associated to create the desired interactiveviewing experience. ETL 215 sends the cross-association data to theserver of server environment 22 o (step 926), where thecross-association data is received (step 930). The TV show is now madeavailable for viewing by the users.

At step 938, the tablet computer sent the request for the TV show to theserver, and at step 924, the server of server environment 924 receivesthe request, and relays the request to a feed of feeds 210 (step 926),where the TV show is available. The feed in this case is a VOD provider,and the VOD provider receives the request for the TV show (step 902).The VOD provider accesses the TV show from a database, and sends thevideo data and other associated feed data to the server (step 904),where it is received (step 928). The other associated feed data can be,for example, a description of the episode, a listing of the charactersand the actors playing the characters, a listing of product placementsin the show and associated times when they appear, a listing of thecommercials in the show and associated times when they appear, etc. Insome embodiments, this information (i.e., the listing of the characters,etc.) is available from other feeds of feeds 210, and is sent to theserver at step 906 and/or 908.

The server sends the TV show, the TC data, the other feed data, and/orthe cross-association data to the tablet computer (step 932), where itis received (step 940). Clients and partners 230 can also send clientsand partners data to the tablet computer (step 948), where it is alsoreceived (step 940). The clients and partners data can be, for example,data received via an API that is provided to the clients and partners,video or data for enhanced targeted advertising, etc.

The tablet computer displays the TV show (step 942), and, based on theTC data, and/or the cross association data, displays an interactiveinterface (step 944), which can include an overlay display. The TV showcan continue playing while the interactive interface is being displayed.For example, based on a trigger, the tablet computer displays an overlapdisplay that enables a user to obtain further information related to theTV show. The TV show continues playing until the user touches theoverlay display (step 946), at which point the tablet computer uses thecross-association data to obtain a URL containing information regardingthe show, and displays the website data of the URL and pauses the video(step 950). The user navigates around the website data using the tabletcomputer (step 952), and when done, the user exits the website and theTV show resumes playing (step 954). As the TV show continues playing,additional overlay displays and/or other interactive interfaces aregenerated and displayed based on the data that was earlier woventogether, and that the IWA running on the tablet computer is receivingand responding to.

FIGS. 10-31 illustrate various use cases enabled utilizing the techniqueof the disclosure. In FIGS. 10-31, a numeric label with an asterisk,such as 1005* or 615* of FIG. 10, indicate a component or module that isbeing utilized in the use case illustrated in that figure.

FIG. 10 is a diagram illustrating a “link to website” use case,consistent with various embodiments. The website use case illustratedcan be executed utilizing the various components and modules of system1000. System 1000 includes an internet enabled device displaying anoverlay element view 1005, and shows the same internet enabled devicedisplaying a model or web view 1010. A model view, sometimes referred toas a modal window, is a child view that opens over an existing view,such as over a view or window of a parent application. A modal view canrequire a user to interact with the model view before the user canreturn to operating the parent application.

FIG. 11 is a diagram illustrating a social media use case, consistentwith various embodiments. The social media use case illustrated can beexecuted utilizing the various components and modules of system 1100.

FIG. 12 is a diagram illustrating a cast/character information meta-datause case, consistent with various embodiments. The cast/characterinformation meta-data use case illustrated can be executed utilizing thevarious components and modules of system 1200.

FIG. 13 is a diagram illustrating a photos and videos use case,consistent with various embodiments. The photos and videos use caseillustrated can be executed utilizing the various components and modulesof system 1300.

FIG. 14 is a diagram illustrating a content, quizzes, and pollsmeta-data use case, consistent with various embodiments. The content,quizzes, and polls meta-data use case illustrated can be executedutilizing the various components and modules of system 1400. In additionto the capabilities described on FIG. 14, an overlay display can displaysporting event results during video playback.

FIG. 15 is a diagram illustrating a set digital video recorder (DVR) usecase, consistent with various embodiments. The set DVR use caseillustrated can be executed utilizing the various components and modulesof system 1500. System 1500 includes an the same internet enabled devicethat is displaying overlay element view 1005 also displayingconfirmation 1505.

FIG. 16 is a diagram illustrating a product placement use case,consistent with various embodiments. The product placement use caseillustrated can be executed utilizing the various components and modulesof system 1600.

FIG. 17 is a diagram illustrating a sync'd to ad use case, consistentwith various embodiments. The sync'd to ad use case illustrated can beexecuted utilizing the various components and modules of system 1700.

FIG. 18 is a diagram illustrating a add to watchlist use case,consistent with various embodiments. The add to watchlist use caseillustrated can be executed utilizing the various components and modulesof system 1800.

FIG. 19 is a diagram illustrating a add reminder use case, consistentwith various embodiments. The add reminder use case illustrated can beexecuted utilizing the various components and modules of system 1900.

FIG. 20 is a diagram illustrating a cross promotion of shows use case,consistent with various embodiments. The cross promotion of shows usecase illustrated can be executed utilizing the various components andmodules of system 2000.

FIG. 21 is a diagram illustrating a cross promotion of networks usecase, consistent with various embodiments. The cross promotion ofnetworks use case illustrated can be executed utilizing the variouscomponents and modules of system 2100.

FIG. 22 is a diagram illustrating a cross promotion of applications usecase, consistent with various embodiments. The cross promotion ofapplications use case illustrated can be executed utilizing the variouscomponents and modules of system 2200.

FIG. 23 is a diagram illustrating a request for information (RFI)/emailcapture use case, consistent with various embodiments. The RFI/emailcapture use case illustrated can be executed utilizing the variouscomponents and modules of system 2300.

FIG. 24 is a diagram illustrating a coupon use case, consistent withvarious embodiments. The coupon use case illustrated can be executedutilizing the various components and modules of system 2400.

FIG. 25 is a diagram illustrating a movie, concert, sporting event, etc.ticket purchase use case, consistent with various embodiments. Themovie, concert, sporting event, etc. ticket purchase use caseillustrated can be executed utilizing the various components and modulesof system 2400.

FIG. 26 is a diagram illustrating a flight, hotel, etc. booking usecase, consistent with various embodiments. The flight, hotel, etc.booking use case illustrated can be executed utilizing the variouscomponents and modules of system 2600.

FIG. 27 is a diagram illustrating a credit card, loan, etc. applicationuse case, consistent with various embodiments. The credit card, loan,etc. application use case illustrated can be executed utilizing thevarious components and modules of system 2700.

FIG. 28 is a diagram illustrating a accruing points for aloyalty/rewards program use case, consistent with various embodiments.The accruing points for a loyalty/rewards program use case illustratedcan be executed utilizing the various components and modules of system2800.

FIG. 29 is a diagram illustrating a digital goods purchase use case,consistent with various embodiments. The digital goods purchase use caseillustrated can be executed utilizing the various components and modulesof system 2900. In addition to the capabilities described on FIG. 29, anoverlay display can communicate a time based offer. The amount of timethat a user has to take advantage of the offer can be from when the timebased offer is first displayed in a video till the end of the video.Touching the overlay display can launch a redeem display that enablesthe user to redeem the offer. The redeem display could be a persistentoverlay display, or other type of display, that stays in place until theoffer is taken, or the end of the video is reached and the offerresultantly expires. A time based offer can be extended for items otherthan digital goods purchases. For example, it can be extended for aphysical goods purchase, a coupon offer, an offer to purchase a ticketfor an event, an offer for a hotel/airline/etc., etc.

FIG. 30 is a diagram illustrating a physical goods purchase use case,consistent with various embodiments. The physical goods purchase usecase illustrated can be executed utilizing the various components andmodules of system 3000. In addition to the capabilities described onFIG. 30, a user can touch an overlay display to pause the video andpurchase a good, such as a pizza. A context relevant module can displaycontextually relevant information related to the good, such as a pizzaorder module can display a screen listing local pizza delivery services.After selecting a service, the menu of the service can be displayed,enabling the user to select the pizza or other items that he desires.The pizza can be purchased, and the display of the video resumed.

FIG. 31 is a high-level block diagram showing an example of a processingdevice 3100 that can represent any of the devices described above, suchas the TV, streaming device, game console, or set top box of mediacenter 105, internet enabled device 115, the servers or other computingdevices that are part of interactive watching environment 120 or thirdparty platform 125, server 220, the application platforms of applicationplatforms 225, a server of server environment 600, the applicationplatforms of application platforms 700, a server or other computingdevice that is part of clients and partners 800, or internet enableddevice 1005 or 1010. Any of these systems may include two or moreprocessing devices, such as represented in FIG. 31, which may be coupledto each other via a network or multiple networks.

In the illustrated embodiment, the processing system 3100 includes oneor more processors 3110, memory 3111, a communication device 3112, andone or more input/output (I/O) devices 3113, all coupled to each otherthrough an interconnect 3114. In some embodiments, the processing system3100 may not have any I/O devices 3113. The interconnect 3114 may be orinclude one or more conductive traces, buses, point-to-pointconnections, controllers, adapters and/or other conventional connectiondevices. The processor(s) 3110 may be or include, for example, one ormore general-purpose programmable microprocessors, microcontrollers,application specific integrated circuits (ASICs), programmable gatearrays, or the like, or a combination of such devices. The processor(s)3110 control the overall operation of the processing device 3100. Memory3111 may be or include one or more physical storage devices, which maybe in the form of random access memory (RAM), read-only memory (ROM)(which may be erasable and programmable), non-volatile memory such asflash memory, miniature hard disk drive, or other suitable type ofstorage device, or a combination of such devices. Memory 3111 may storedata and instructions that configure the processor(s) 3110 to executeoperations in accordance with the techniques described above. Thecommunication device 3112 may be or include, for example, an Ethernetadapter, cable modem, Wi-Fi adapter, cellular transceiver, Bluetoothtransceiver, or the like, or a combination thereof. Depending on thespecific nature and purpose of the processing device 3100, the I/Odevices 3113 can include devices such as a display (which may be a touchscreen display), audio speaker, keyboard, mouse or other pointingdevice, microphone, camera, etc.

Unless contrary to physical possibility, it is envisioned that (i) themethods/steps described above may be performed in any sequence and/or inany combination, and that (ii) the components of respective embodimentsmay be combined in any manner.

The techniques introduced above can be implemented by programmablecircuitry programmed/configured by software and/or firmware, or entirelyby special-purpose circuitry, or by a combination of such forms. Suchspecial-purpose circuitry (if any) can be in the form of, for example,one or more application-specific integrated circuits (ASICs),programmable logic devices (PLDs), field-programmable gate arrays(FPGAs), etc.

Software or firmware for use in implementing the techniques introducedhere may be stored on a machine-readable storage medium and may beexecuted by one or more general-purpose or special-purpose programmablemicroprocessors. A “machine-readable medium”, as the term is usedherein, includes any mechanism that can store information in a formaccessible by a machine (a machine may be, for example, a computer,network device, cellular phone, personal digital assistant (PDA),manufacturing tool, any device with one or more processors, etc.). Forexample, a machine-accessible medium includes recordable/non-recordablemedia (e.g., read-only memory (ROM); random access memory (RAM);magnetic disk storage media; optical storage media; flash memorydevices; etc.), etc.

Although the present invention has been described with reference tospecific exemplary embodiments, it will be recognized that the inventionis not limited to the embodiments described, but can be practiced withmodification and alteration within the spirit and scope of the appendedclaims. Accordingly, the specification and drawings are to be regardedin an illustrative sense rather than a restrictive sense.

1. A method for providing an interactive video watching experience to auser, the method comprising: causing, by a server, a video to be playedon a display screen of an internet enabled device associated with theuser; sending, by the server, a trigger of a plurality of triggersassociated with the video to the internet enabled device, the triggerbeing associated with a display element of a plurality of displayelements, and with an event that occurs at a specific point of thevideo, the event being one of a plurality of events that occur in thevideo, the trigger being created by a traffic controller configured toschedule and manage video content, wherein the trigger is inserted basedupon any of video priority, screen layout, and social media data, thetrigger being validated to ensure correct syntax and availability of theassociated display element, and each of the plurality of triggers beingassociated with at least one of the display elements, and with at leastone of the events; the display element being a display templateconfigured to be used by a device in association with generating anoverlay display to be displayed over the video on a portion of thedisplay screen as the video is being displayed on the display screen,the trigger configured to cause the overlay display to be displayed onthe display screen in response to the specific point of the video beingreached as the video is being displayed on the display screen;receiving, by the server, an input indication message sent by theinternet enabled device in response to the internet enabled devicereceiving an indication that the user provided input to the internetenabled device while the overlay display and the video were beingdisplayed on the display screen; and in response to receiving the inputindication message indicating that the user provided input to theinternet enabled device while the overlay display and the video werebeing displayed on the display screen, causing, by the server, feed datafrom a feed to be sent to the internet enabled device to enable theinternet enabled device to display a modal view, the modal viewcontaining data based on the feed data.
 2. The method of claim 1,wherein the feed data is one or more of: an URL associated with thevideo, an IP address to data associated with the video, another video,an advertisement, a meta-data associated with the video, a titleassociated with the video, a description associated with the video, alist of cast members associated with the video, an user-relatedinformation related to a social media or a social network account of theuser, a schedule data related to programming of a real-time streamassociated with the video, a quiz or a poll associated with the video,and an user profile data of the user.
 3. The method of claim 1, whereinthe input indication message indicates that the user device detected atouch input from the display screen while the overlay was displayed onthe display screen.
 4. The method of claim 1, wherein the modal viewcontains data based on the feed data containing information related tothe user's social media account.
 5. A method for providing aninteractive video watching experience to a user, the method comprising:causing, by a server, a video to be played on a display screen of a userdevice associated with the user; sending, by the server, a triggerindicating a display element and a specific point of the video to theuser device, the display element used to generate an overlay to bedisplayed over the video on a portion of the display screen, and thetrigger configured to cause the overlay to be displayed on the displayscreen in response to playing the specific point of the video on thedisplay screen, the trigger being created by a traffic controllerconfigured to schedule and manage video content, and the trigger beingvalidated to ensure correct syntax and availability of the associateddisplay element; receiving, by the server, an input indication messagesent by the user device in response to the user device detecting thatthe user provided input to the user device while the overlay was beingdisplayed on the display screen; and sending, by the server, feed datato the user device to enable the user device to display a modal view onthe display screen in response to receiving the input indicationmessage, the modal view containing data based on the feed data.
 6. Themethod of claim 5, wherein the feed data is one or more of: an URLassociated with the video, an IP address to data associated with thevideo, another video, an advertisement, a meta-data associated with thevideo, a title associated with the video, a description associated withthe video, a list of cast members associated with the video, anuser-related information related to a social media or a social networkaccount of the user, a schedule data related to programming of areal-time stream associated with the video, a quiz or a poll associatedwith the video, and an user profile data of the user.
 7. The method ofclaim 5, wherein when the feed data is a uniform resource locator (URL)or an internet protocol (IP) address of a second feed, the display datais based on the second feed received by the internet enabled device. 8.The method of claim 5, wherein the input indication message indicatesthat the user device detected a touch input from the display screenwhile the overlay was displayed on the display screen.
 9. The method ofclaim 5, wherein the modal view contains data based on the feed datacontaining information related to the user's social media account. 10.The method of claim 5, wherein the specific point in the video indicatesone or more of the following: a point in the video when a cast member ofa program or movie of the video appears in the video, a point when acommercial appears in the video, a point when a commercial from acompany appears in the video, a point when a commercial about a productappears in the video, and a point when the program or the movie of thevideo begins or ends.
 11. The method of claim 5, wherein the overlayincludes information regarding a program, the method further comprising:sending, by the server, a record message to cause the program to berecorded, the record message being sent in response to receiving theinput indication message when the overlay includes information about theprogram.
 12. A method for providing an interactive video watchingexperience to a user, the method comprising: causing, by a server, avideo to be played on a display screen of a user device associated withthe user; sending, by the server, a trigger indicating a display elementand a specific point of the video to the user device, the displayelement used to generate an overlay to be displayed over the video on aportion of the display screen, and the trigger configured to cause theoverlay to be displayed on the display screen in response to playing thespecific point of the video on the display screen, the trigger beingcreated by a traffic controller configured to schedule and manage videocontent, and the trigger being validated to ensure correct syntax andavailability of the associated display element; receiving, by theserver, an input indication message sent by the user device in responseto the user device detecting that the user touched the display screenwhile the overlay was being displayed on the display screen; andsending, by the server, feed data to the user device to enable the userdevice to display a modal view on the display screen in response toreceiving the input indication message, the modal view containing databased on the feed data.
 13. The method of claim 12, wherein the feeddata is one or more of: an URL associated with the video, an IP addressto data associated with the video, another video, an advertisement, ameta-data associated with the video, a title associated with the video,a description associated with the video, a list of cast membersassociated with the video, an user-related information related to asocial media or a social network account of the user, a schedule datarelated to programming of a real-time stream associated with the video,a quiz or a poll associated with the video, and an user profile data ofthe user.
 14. The method of claim 12, wherein the modal view containsdata based on the feed data containing information related to the user'ssocial media account.
 15. A method for providing an interactive videowatching experience to a user, the method comprising: causing, by aserver, a video to be played on a display screen of a user deviceassociated with the user; sending, by the server, a trigger indicating adisplay element and a specific point of the video to the user device,the display element used to generate an overlay to be displayed over thevideo on a portion of the display screen, and the trigger configured tocause the overlay to be displayed on the display screen in response toplaying the specific point of the video on the display screen, thetrigger being created by a traffic controller configured to schedule andmanage video content, and the trigger being validated to ensure correctsyntax and availability of the associated display element; receiving, bythe server, an input indication message sent by the user device inresponse to the user device detecting that the user provided input tothe user device while the overlay was being displayed on the displayscreen; and sending, by the server, feed data to the user device toenable the user device to display a modal view on the display screen inresponse to receiving the input indication message, the modal viewcontaining data based on the feed data containing information related tothe user's social media account.
 16. The method of claim 15, wherein thefeed data is one or more of: an URL associated with the video, an IPaddress to data associated with the video, another video, anadvertisement, a meta-data associated with the video, a title associatedwith the video, a description associated with the video, a list of castmembers associated with the video, an user-related information relatedto a social media or a social network account of the user, a scheduledata related to programming of a real-time stream associated with thevideo, a quiz or a poll associated with the video, and an user profiledata of the user.
 17. The method of claim 15, wherein the inputindication message indicates that the user device detected a touch inputfrom the display screen while the overlay was displayed on the displayscreen.
 18. A device comprising: a processor; and a memory, coupled tothe processor, having instructions executable by the processor to causethe device to perform operations including: causing, by the device, avideo to be played on a display screen of a user device; sending, by thedevice, a trigger indicating a display element and a specific point ofthe video to the user device, the display element used to generate anoverlay to be displayed over the video on a portion of the displayscreen, and the trigger configured to cause the overlay to be displayedon the display screen in response to playing the specific point of thevideo on the display screen, the trigger being created by a trafficcontroller configured to schedule and manage video content, and thetrigger being validated to ensure correct syntax and availability of theassociated display element; receiving, by the device, an inputindication message sent by the user device in response to the userdevice detecting that the user provided input to the user device whilethe overlay was being displayed on the display screen; and sending, bythe device, feed data to the user device to enable the user device todisplay a modal view on the display screen in response to receiving theinput indication message, the modal view containing data based on thefeed data.
 19. The device of claim 18, wherein the feed data is one ormore of: an URL associated with the video, an IP address to dataassociated with the video, another video, an advertisement, a meta-dataassociated with the video, a title associated with the video, adescription associated with the video, a list of cast members associatedwith the video, an user-related information related to a social media ora social network account of the user, a schedule data related toprogramming of a real-time stream associated with the video, a quiz or apoll associated with the video, and an user profile data of the user.20. The device of claim 18, wherein when the feed data is a uniformresource locator (URL) or an internet protocol (IP) address of a secondfeed, the display data is based on the second feed received by theinternet enabled device.
 21. The device of claim 18, wherein the inputindication message indicates that the user device detected a touch inputfrom the display screen while the overlay was displayed on the displayscreen.
 22. The device of claim 18, wherein the modal view contains databased on the feed data containing information related to the user'ssocial media account.